//
//  CLEnumProtocal.h
//  CLApp
//
//  Created by chuck on 2018/10/3.
//  Copyright © 2018年 CCYQ. All rights reserved.
//
/**
 *  统一存放公共枚举与协议、
 */
#ifndef CLEnumProtocal_h
#define CLEnumProtocal_h

/// protocol
/// ---------
@protocol SetRemarkDelegate<NSObject>;

- (void)touchSureWithRemark:(NSString *)remark;

@end
@protocol ChatMyCellDelegate<NSObject>;

- (void)touchMyCellInfo:(NSDictionary *)cellInfo;

- (void)touchMenu:(NSDictionary *)menuInfo;

@end

@protocol ChatOtherCellDelegate<NSObject>;

- (void)touchOtherCellInfo:(NSDictionary *)cellInfo;

- (void)touchMenu:(NSDictionary *)menuInfo;

@end

@protocol CellDetailedInfoDelegate<NSObject>;

- (void)touchCellInfo:(NSDictionary *)cellInfo;

@end

@protocol CellDetailedInfoSettingDelegate<NSObject>;

- (void)touchSwitchInfo:(NSDictionary *)cellInfo;

@end

/// A protocol which is adopted by views which are backed by view models.
@protocol CLReactiveView <NSObject>
/// Binds the given view model to the view.
///
/// viewModel - The view model
- (void)bindViewModel:(id)viewModel;
@end

@protocol CLDisplayCellProtocol <NSObject>
- (void)cl_tableView:(UITableView *)tableView willDisplayForRowAtIndexPath:(NSIndexPath *)indexPath;
@end

@protocol CLWebHiddenNavigationProtocol
- (BOOL)isHiddenNaviBar;
@end

/// tababr item tag
typedef NS_ENUM(NSUInteger, CLTabBarItemTagType) {
    CLTabBarItemTagTypeMainFrame = 0,    /// 消息回话
    CLTabBarItemTagTypeContacts,         /// 通讯录
    CLTabBarItemTagTypeDiscover,         /// 发现
    CLTabBarItemTagTypeProfile,          /// 我的
};


/// 切换根控制器类型
typedef NS_ENUM(NSUInteger, CLSwitchRootViewControllerFromType) {
    CLSwitchRootViewControllerFromTypeNewFeature = 0,  /// 新特性
    CLSwitchRootViewControllerFromTypeLogin,           /// 登录
    CLSwitchRootViewControllerFromTypeLogout,          /// 登出
};

/// 用户登录的渠道
typedef NS_ENUM(NSUInteger, CLUserLoginChannelType) {
    CLUserLoginChannelTypeQQ = 0,           /// qq登录
    CLUserLoginChannelTypeEmail,            /// 邮箱登录
    CLUserLoginChannelTypeWeChatId,         /// 微信号登录
    CLUserLoginChannelTypePhone,            /// 手机号登录
};

/// 用户性别
typedef NS_ENUM(NSUInteger, CLUserGenderType) {
    CLUserGenderTypeMale = 1,            /// 男
    CLUserGenderTypeFemale,             /// nv
};

/// 插件详情说明
typedef NS_ENUM(NSUInteger, CLPlugDetailType) {
    CLPlugDetailTypeLook = 0,     /// 看一看
    CLPlugDetailTypeSearch,       /// 搜一搜
};


/// 新鲜类型
typedef NS_ENUM(NSUInteger, CLMomentExtendType) {
    CLMomentExtendTypeNormal = 0,  /// 普通新鲜
    CLMomentExtendTypeOfficial = 1,/// 官方新鲜
    CLMomentExtendTypePicture,     /// 配图
    CLMomentExtendTypeVideo,       /// 视频
    CLMomentExtendTypeShare,       /// 分享
};


/// 微信朋友圈分享内容的类型
typedef NS_ENUM(NSUInteger, CLMomentShareInfoType) {
    CLMomentShareInfoTypeWebPage = 0, /// 网页
    CLMomentShareInfoTypeMusic,       /// 音乐
};

/// 朋友圈
/// 类型
typedef NS_ENUM(NSUInteger, CLMomentContentType) {
    CLMomentContentTypeAttitude = 0,   /// 点赞
    CLMomentContentTypeComment ,       /// 评论
};
/// 头像类型
typedef NS_ENUM(NSUInteger, CLDefaultAvatarType) {
    CLDefaultAvatarTypeSmall = 0,  /// 小图 60x60
    CLDefaultAvatarTypeDefualt,    /// 默认 120x120
    CLDefaultAvatarTypeBig,        /// 大图 166x166
};

typedef NS_ENUM(NSInteger,CLMessageActionType){
    CLMessageAction_SearchUnread = 1,
    CLMessageAction_SearchAll,
    CLMessageAction_DelMessage,
    CLMessageAction_DelAll
};
///0.全城，1好友，2我的，3单个新鲜，4某人
typedef NS_ENUM(NSInteger,CLVCMomentType) {
    CLVCMomentType_City = 0,
    CLVCMomentType_Friend = 1,
    CLVCMomentType_Mine = 2,
    CLVCMomentType_Detail = 3,
    CLVCMomentType_User = 4,
};
typedef NS_ENUM(NSInteger,CLFilterSortType) {
    CLFilterSortType_Normal = 0,//人气排序、活跃排序
    CLFilterSortType_Fresh = 1,//新鲜筛选
};
/// 与用户关系
typedef NS_ENUM(NSInteger,CLMomentConcern) {
    CLMomentConcern_None = 0,//没有关系
    CLMomentConcern_Attented = 1,//已关注
    CLMomentConcern_Friend = 3, //好友
};
typedef NS_ENUM(NSInteger,CLFilterType) {
    CLFilterType_Identity = 1,//身份
    CLFilterType_Region = 2,//学校
};

typedef NS_ENUM(NSInteger, CLBottomToolBarTag) {
    CLBottomToolBarTagBack,
    CLBottomToolBarTagForward,
    CLBottomToolBarTagRefreshOrStop,
    CLBottomToolBarTagMultiWindow,
    CLBottomToolBarTagMore,
    CLBottomToolBarTagFlexible,
    
    //用于准确识别刷新或停止
    CLBottomToolBarTagRefresh,
    CLBottomToolBarTagStop,
    CLBottomToolBarTagNovel,//小说
};

typedef NS_ENUM(NSInteger, CLScrollDirection) {
    CLScrollDirectionNone,
    CLScrollDirectionRight,
    CLScrollDirectionLeft,
    CLScrollDirectionUp,
    CLScrollDirectionDown,
};

@protocol CLWebBottomBarClickDelegate <NSObject>

@optional
- (void)browserBottomToolBarButtonClickedWithTag:(CLBottomToolBarTag)tag;

@end

typedef NS_ENUM(NSInteger,ZHErrorType){
    HttpConnectionFailureErrorType = -1000, // 连接服务器失败
    HttpRequestTimedOutErrorType = -1001, // 连接超时
    HttpRequestCancelErrorType = -1002, // 请求被取消
    HttpRequestServerErrorType = -1009, // 服务器端返回错误
    HttpRequestGeneralErrorType = -1010, // 其他网络错误
    HttpRequestParseErrorType = -1011,
};

typedef NS_ENUM(NSInteger, CLSpacingType) {
    /// 大间距
    CLSpacingTypeBig,
    /// 适中间距
    CLSpacingTypeMiddle,
    /// 小间距
    CLSpacingTypeSmall,
};

typedef NS_ENUM(NSInteger, CLFontType) {
    /// 系统
    CLFontTypeSystem,
    /// 黑体
    CLFontTypeOne,
    /// 楷体
    CLFontTypeTwo,
    /// 宋体
    CLFontTypeThree,
};

typedef NS_ENUM(NSInteger, CLBookSourceType) {
    CLBookSourceTypeNetwork,
    BookSourceTypeLocal
};

/// 阅读进度类型
typedef NS_ENUM(NSInteger, CLProgressType) {
    /// 总进度
    CLProgressTypeTotal,
    /// 分页进度
    CLProgressTypePage
};

/// 阅读翻页类型
typedef NS_ENUM(NSInteger, CLEffectType) {
    /// 仿真
    CLEffectTypeSimulation,
    /// 覆盖
    CLEffectTypeCover,
    /// 平移
    CLEffectTypeTranslation,
    /// 滚动
    CLEffectTypeScroll,
    /// 无效果
    CLEffectTypeNo,
};


#endif /* CLEnumProtocal_h */
